package com.sxt.sys.controller;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.sxt.springcloud.sys.MenuClientService;
import com.sxt.sys.domain.User;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sxt.sys.common.Constast;
import com.sxt.sys.common.DataGridView;
import com.sxt.sys.common.ResultObj;
import com.sxt.sys.common.TreeNode;
import com.sxt.sys.common.TreeNodeBuilder;
import com.sxt.sys.common.WebUtils;
import com.sxt.sys.domain.Permission;
import com.sxt.sys.vo.PermissionVo;

import javax.annotation.Resource;

/**
 * <p>
 *  菜单管理前端控制器
 * </p>
 *
 * @author 老雷
 * @since 2019-09-21
 */
@RestController
@RequestMapping("/menu")
public class MenuController {



	@Resource
	private MenuClientService menuService;
	
	
	@RequestMapping("loadIndexLeftMenuJson")
	public DataGridView  loadIndexLeftMenuJson(Integer userType,Integer userId) {
		User user = (User) WebUtils.getSession().getAttribute("user");
		userType = user.getType();
		userId = user.getId();
		return this.menuService.loadIndexLeftMenuJson(userType,userId);
	}
	
	
	/****************菜单管理开始****************/
	
	/**
	 * 加载菜单管理左边的菜单树的json
	 */
	@RequestMapping("loadMenuManagerLeftTreeJson")
	public DataGridView loadMenuManagerLeftTreeJson(PermissionVo permissionVo) {
		return this.menuService.loadMenuManagerLeftTreeJson(permissionVo);
	}
	
	/**
	 * 查询
	 */
	@RequestMapping("loadAllMenu")
	public DataGridView loadAllMenu( PermissionVo permissionVo) {
		return this.menuService.loadAllMenu(permissionVo);
	}
	
	/**
	 * 加载最大的排序码
	 * @param
	 * @return
	 */
	@RequestMapping("loadMenuMaxOrderNum")
	public Map<String,Object> loadMenuMaxOrderNum(){
		return this.menuService.loadMenuMaxOrderNum();
	}
	
	
	/**
	 * 添加
	 * @param permissionVo
	 * @return
	 */
	@RequestMapping("addMenu")
	public ResultObj addMenu( PermissionVo permissionVo) {
		return this.menuService.addMenu(permissionVo);
	}
	

	/**
	 * 修改
	 * @param permissionVo
	 * @return
	 */
	@RequestMapping("updateMenu")
	public ResultObj updateMenu( PermissionVo permissionVo) {
		return this.menuService.updateMenu(permissionVo);
	}
	
	
	/**
	 * 查询当前的ID的菜单有没有子菜单
	 */
	@RequestMapping("checkMenuHasChildrenNode")
	public Map<String,Object> checkMenuHasChildrenNode( PermissionVo permissionVo){
		return this.menuService.checkMenuHasChildrenNode(permissionVo);
	}
	
	/**
	 * 删除
	 * @param permissionVo
	 * @return
	 */
	@RequestMapping("deleteMenu")
	public ResultObj deleteMenu( PermissionVo permissionVo) {
		return this.menuService.deleteMenu(permissionVo);
	}
	
	/****************菜单管理结束****************/
}

